home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / PIL / ImageQt.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  2KB  |  60 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. import Image
  5. from PyQt4.QtGui import QImage, qRgb
  6.  
  7. def rgb(r, g, b):
  8.     return (qRgb(r, g, b) & 16777215) - 16777216
  9.  
  10.  
  11. class ImageQt(QImage):
  12.     
  13.     def __init__(self, im):
  14.         data = None
  15.         colortable = None
  16.         if hasattr(im, 'toUtf8'):
  17.             im = unicode(im.toUtf8(), 'utf-8')
  18.         
  19.         if Image.isStringType(im):
  20.             im = Image.open(im)
  21.         
  22.         if im.mode == '1':
  23.             format = QImage.Format_Mono
  24.         elif im.mode == 'L':
  25.             format = QImage.Format_Indexed8
  26.             colortable = []
  27.             for i in range(256):
  28.                 colortable.append(rgb(i, i, i))
  29.             
  30.         elif im.mode == 'P':
  31.             format = QImage.Format_Indexed8
  32.             colortable = []
  33.             palette = im.getpalette()
  34.             for i in range(0, len(palette), 3):
  35.                 colortable.append(rgb(*palette[i:i + 3]))
  36.             
  37.         elif im.mode == 'RGB':
  38.             data = im.tostring('raw', 'BGRX')
  39.             format = QImage.Format_RGB32
  40.         elif im.mode == 'RGBA':
  41.             
  42.             try:
  43.                 data = im.tostring('raw', 'BGRA')
  44.             except SystemError:
  45.                 (r, g, b, a) = im.split()
  46.                 im = Image.merge('RGBA', (b, g, r, a))
  47.  
  48.             format = QImage.Format_ARGB32
  49.         else:
  50.             raise ValueError('unsupported image mode %r' % im.mode)
  51.         if not data:
  52.             pass
  53.         self._ImageQt__data = im.tostring()
  54.         QImage.__init__(self, self._ImageQt__data, im.size[0], im.size[1], format)
  55.         if colortable:
  56.             self.setColorTable(colortable)
  57.         
  58.  
  59.  
  60.